package cn.edu.scau.cmi.ema.dao;

import java.util.Set;

import org.springframework.dao.DataAccessException;
import cn.edu.scau.cmi.ema.domain.*;
import cn.edu.scau.cmi.ema.domain.base.CmiPagination;

import java.util.Calendar;

public interface UserDAO extends JpaDao<User> {

	public User findUserById(Integer id) throws DataAccessException;

	public User findUserById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByName(String name) throws DataAccessException;

	public Set<User> findUserByName(String name, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByNameContaining(String name_1) throws DataAccessException;

	public Set<User> findUserByNameContaining(String name_1, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByUsername(String username) throws DataAccessException;

	public Set<User> findUserByUsername(String username, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByUsernameContaining(String username_1) throws DataAccessException;

	public Set<User> findUserByUsernameContaining(String username_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUserByPassword(String password) throws DataAccessException;

	public Set<User> findUserByPassword(String password, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByPasswordContaining(String password_1) throws DataAccessException;

	public Set<User> findUserByPasswordContaining(String password_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUserByFirstname(String firstname) throws DataAccessException;

	public Set<User> findUserByFirstname(String firstname, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByFirstnameContaining(String firstname_1) throws DataAccessException;

	public Set<User> findUserByFirstnameContaining(String firstname_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUserByLastname(String lastname) throws DataAccessException;

	public Set<User> findUserByLastname(String lastname, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByLastnameContaining(String lastname_1) throws DataAccessException;

	public Set<User> findUserByLastnameContaining(String lastname_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUserByGender(String gender) throws DataAccessException;

	public Set<User> findUserByGender(String gender, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByGenderContaining(String gender_1) throws DataAccessException;

	public Set<User> findUserByGenderContaining(String gender_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUserByBirthday(Calendar birthday) throws DataAccessException;

	public Set<User> findUserByBirthday(Calendar birthday, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByCareer(String career) throws DataAccessException;

	public Set<User> findUserByCareer(String career, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByCareerContaining(String career_1) throws DataAccessException;

	public Set<User> findUserByCareerContaining(String career_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUserByEmail(String email) throws DataAccessException;

	public Set<User> findUserByEmail(String email, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByEmailContaining(String email_1) throws DataAccessException;

	public Set<User> findUserByEmailContaining(String email_1, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByPhone(String phone) throws DataAccessException;

	public Set<User> findUserByPhone(String phone, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByPhoneContaining(String phone_1) throws DataAccessException;

	public Set<User> findUserByPhoneContaining(String phone_1, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByCellphone(String cellphone) throws DataAccessException;

	public Set<User> findUserByCellphone(String cellphone, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByCellphoneContaining(String cellphone_1) throws DataAccessException;

	public Set<User> findUserByCellphoneContaining(String cellphone_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUserByQq(String qq) throws DataAccessException;

	public Set<User> findUserByQq(String qq, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByQqContaining(String qq_1) throws DataAccessException;

	public Set<User> findUserByQqContaining(String qq_1, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByWechat(String wechat) throws DataAccessException;

	public Set<User> findUserByWechat(String wechat, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByWechatContaining(String wechat_1) throws DataAccessException;

	public Set<User> findUserByWechatContaining(String wechat_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUserByEnabled(Boolean enabled) throws DataAccessException;

	public Set<User> findUserByEnabled(Boolean enabled, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByDescription(String description) throws DataAccessException;

	public Set<User> findUserByDescription(String description, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<User> findUserByDescriptionContaining(String description_1, int startResult, int maxRows)
			throws DataAccessException;

	public User findUserByPrimaryKey(Integer id) throws DataAccessException;

	public User findUserByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUsersByIds(Set<Integer> ids) throws DataAccessException;

	public Set<User> findAllUsers() throws DataAccessException;

	public Set<User> findAllUsers(int startResult, int maxRows) throws DataAccessException;

	public Set<User> findUserByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<User> findUsersByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public User findUserByPhysicalPrimaryKey(String name, Calendar birthday, String email) throws DataAccessException;

	public User findUserByPhysicalPrimaryKey(String name, Calendar birthday, String email, int startResult, int maxRows)
			throws DataAccessException;
}
